문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 플린 분류 (문단 편집) ==== SIMD의 한계 ==== [[VLIW|한번에 여러 개의 데이터를 묶어서 처리하는 개념]]이다보니 아무래도 프로그래머가 신경쓸게 많아진다. 예를 들어 데이터 개수가 4 혹은 8로 딱 나눠 떨어지지 않는 경우가 발생하지 않게 구조체에 패딩 바이트를 넣어서 원하는 벡터 크기에 맞춘다거나, malloc을 호출 할 때 벡터 크기의 배수만큼 메모리 할당을 하게 하는 기술을 익혀야 한다. 현대 CPU들은 비정렬된 데이터들도 x86의 vlddqu와 같은 오류가 나지 않게 처리할 수 있는 기능들을 제공하고 있으나 비정렬된 페이지 특성상 메모리 접근에 사이클을 좀더 소모하게 되므로 통상적으로 unaligned load 시 5%의 성능 저하가 있다. 또한 코드를 작성할 때, 루프를 예쁘게 작성할 수록(CPU의 캐시 크기를 고려한다거나) 프로그램이 빨라지기에 관련된 지식(CPU 아키텍처 수준)을 빠삭하게 알아야 CPU의 진정한 성능을 끌어낼 수 있다는 것이 단점이다. CPU의 SIMD에 대비되는 GPGPU는 [[그런거 없다|그런거 없이]] 코드를 작성해도 왠만해선 작성한 알고리즘의 극한까지 성능이 나오는 것에 비하면 확실한 단점. 대신 GPGPU를 남용하게 되면 엄청난 전력 손실에 시달리게 되는 것은 물론이고, 심지어 기대했던 성능 향상이 생각보다 이뤄지지 않을 수도 있으니 주의해야 한다. 예를 들어 모바일 환경에서 GPGPU에 크게 의존하게 되면 전력 소모로 인한 열 발생으로 인해, 기기에 쓰로틀링이 걸려 강제로 성능을 제약하는 모드로 진입하거나 강제 재부팅할 수도 있다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기